package com.jiutong.meipengdai.http.model.services;

import com.jiutong.meipengdai.common.Constants;
import com.jiutong.meipengdai.entity.BaseRespond;
import com.jiutong.meipengdai.entity.CheckPhoneNumRespond;
import com.jiutong.meipengdai.entity.IdentifyCodeRespond;
import com.jiutong.meipengdai.entity.LoginOrRegisterRespond;
import com.jiutong.meipengdai.entity.PicUploadRespond;
import com.jiutong.meipengdai.entity.PwdCheckRespond;
import com.jiutong.meipengdai.http.model.requests.CheckPhoneNumRequest;

import java.util.HashMap;
import java.util.Map;

import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Created by suxi on 2017/5/27.
 */

public interface UserInfoService {

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> registed(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<LoginOrRegisterRespond> login(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<LoginOrRegisterRespond> passwordReset(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<CheckPhoneNumRespond> checkPhoneNum(@FieldMap Map<String, Object> fields);


    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> authIdCard(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<IdentifyCodeRespond> getAuthCode(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<LoginOrRegisterRespond> changePhoneNum(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<LoginOrRegisterRespond> forgetPwd(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> emailVerify(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> emailBind(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<LoginOrRegisterRespond> aboutUs(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> pwdResetByCode(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<PwdCheckRespond> checkPwd(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<PicUploadRespond> picUpload(@FieldMap Map<String, Object> fields);

    @FormUrlEncoded
    @POST(Constants.URLEND)
    Observable<BaseRespond> sentId(@FieldMap HashMap<String, Object> fieldMap);
}
